package cn.hahah.module.blog.app.service;

import cn.hahah.framework.common.pojo.CommonResult;
import cn.hahah.module.blog.app.dto.ArticleComment;
import cn.hahah.module.blog.controller.admin.article.vo.ArticleRespVO;
import cn.hahah.module.blog.controller.admin.users.vo.UsersRespVO;
import cn.hahah.module.blog.dal.dataobject.article.ArticleDO;
import cn.hahah.module.blog.dal.dataobject.articletype.ArticleTypeDO;
import cn.hahah.module.blog.dal.dataobject.tag.TagDO;
import cn.hahah.module.blog.dal.dataobject.users.UsersDO;

import java.util.List;
import java.util.Map;

public interface BlogVisitService {

    /**游客_首页推荐*/
    public CommonResult<Map<String,Object>> homePageRecommend();

    /**游客_查看文章*/
    public CommonResult<ArticleDO> articleDetail(Long userId, String ip, Long articleId);

    /**游客_获取所有文章类型*/
    public CommonResult<List<ArticleTypeDO>> getAllType();

    /**游客_获取所有文章标签*/
    public CommonResult<List<TagDO>> getAllTag();

    /**游客_根据文章获取标签*/
    public CommonResult<List<Long>> getTagByArt(Long articleId);

    /**游客_搜索文章*/
    public CommonResult<List<ArticleRespVO>> searchArticle(Long userId, String title);

    /**游客_搜索用户*/
    public CommonResult<List<UsersRespVO>> searchUser(String nickname);

    /**游客_根据分类搜索文章*/
    public CommonResult<List<ArticleRespVO>> searchArtByType(Long typeId);

    /**游客_根据标签搜索文章*/
    public CommonResult<List<ArticleRespVO>> searchArtByTag(Long tagId);

    /**游客_获取文章评论*/
    public CommonResult<List<ArticleComment>> getArticleComment(Long articleId);

    /**游客_查看用户*/
    public CommonResult<UsersDO> checkUser(Long userId);

}
